package NGUYENVANDOAN.XMLDEMO;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;

import vn.edu.imic.XmlProcess.XMLManagements;

public class VIEWS {
    public static void main(String[] args) {
        // 1. Khai báo và khởi tạo list Field
        List<Object> lisField = new ArrayList<Object>();
        lisField.add("id");
        lisField.add("RollNo");
        lisField.add("FullName");
        lisField.add("Email");
        lisField.add("Mark");

        // 2. Khai báo tham số cấu hình cho việc thực thi nghiệp vụ
        String elementNode = "Student";
        JFileChooser objFile = new JFileChooser();
        objFile.setCurrentDirectory(new java.io.File("."));
        objFile.setDialogTitle("Chọn file: ");
        objFile.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
        String[] EXTENSION = new String[] { "xml" };
        FileNameExtensionFilter filter = new FileNameExtensionFilter("XML files", EXTENSION);
        objFile.setFileFilter(filter);
        objFile.setMultiSelectionEnabled(false);

        int returnVal = objFile.showOpenDialog(null);
        String ParentPath = "";
        String FileName = "";
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            ParentPath = objFile.getSelectedFile().getParent();
            FileName = objFile.getSelectedFile().getName();
        }
        String path = ParentPath + "/" + FileName;

        // 3. Khai báo & khởi tạo thư viện
        XMLManagements objXML = new XMLManagements();

        // 4. Ủy quyền thực thi nghiệp vụ
        try {
            List<List<HashMap<String, String>>> lisResult = objXML.XMLOfItems(lisField, elementNode, path);

            // 5. Duyệt tập dữ liệu có trong lisResult
            HashMap<String, String> objHash = null;
            for (int i = 0; i < lisResult.size(); i++)
                for (int j = 0; j < lisResult.get(i).size(); j++) {
                    objHash = lisResult.get(i).get(j);
                    // Hiển thị thông tin có trong đối tượng objHash
                    System.out.println("+ Id: " + objHash.get("id"));
                    System.out.println("+ RollNo: " + objHash.get("RollNo"));
                    System.out.println("+ FullName: " + objHash.get("FullName"));
                    System.out.println("+ Email: " + objHash.get("Email"));
                    System.out.println("+ Mark: " + objHash.get("Mark"));
                }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}
